package com.igo.domain.datacollection.devicedata;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 设备数据计算对象 di_device_data_calcd
 * 
 * @author dongtai
 * @date 2024-12-19
 */
@Data
@TableName(value = "di_device_data_calcd_test",autoResultMap = true)
@Schema(description = "任务实体类")
@ApiModel("任务实体类")
public class DeviceDataCalcd
{

    /** 模型ID */
    @TableId
    @Schema(description = "任务id")
    private Long calcdId;

    /** 设备编号 */
    @Schema(description = "设备编号")
    private String deviceNo;

    /** 计算类型：1负载、2空载、3加油 */
    @Schema(description = "计算类型：1负载、2空载、3加油")
    private Integer calcdType;

    /** 门吊计算类型：1总任务；2单钩任务 */
    @Schema(description = "门吊计算类型：1总任务；2单钩任务")
    private Integer gantryCraneType;

    /** 模型字段 */
    @Schema(description = "模型字段")
    private String modelField;

    /** 负载类型：1大负载、2小负载 */
    @Schema(description = "负载类型：1大负载、2小负载")
    private Integer loadType;

    /** 设备任务状态：1有效、2无效 */
    @Schema(description = "1大负载、2小负载")
    private Integer loadValid;

    /** 负载时间S */
    @Schema(description = "负载时间S")
    private BigDecimal loadTime;

    /** 开始时间 */
    @Schema(description = "开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String startTime;

    /** 结束时间 */
    @Schema(description = "结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String endTime;

    /** 开始有效载重重量 */
    @Schema(description = "开始有效载重重量")
    private BigDecimal startLoadCapacity;

    /** 结束有效载重重量 */
    @Schema(description = "结束有效载重重量")
    private BigDecimal endLoadCapacity;

    /** 有效载重重量 */
    @Schema(description = "有效载重重量")
    private BigDecimal loadCapacity;

    /** 有效载重集合 */
    @Schema(description = "有效载重集合")
    private String loadCapacityList;

    /** 经纬度集合 */
    @TableField(typeHandler = JacksonTypeHandler.class)
    @Schema(description = "经纬度集合")
    private List<String> latLongList;

    /** 里程数量KM */
    @Schema(description = "里程数量KM")
    private BigDecimal mileage;

    /** 开始油量 */
    @Schema(description = "开始油量")
    private BigDecimal startOilQuantity;

    /** 结束油量 */
    @Schema(description = "结束油量")
    private BigDecimal endOilQuantity;

    /** 加油量L */
    @Schema(description = "加油量L")
    private BigDecimal addOilQuantity;

    /** 油耗量L */
    @Schema(description = "油耗量L")
    private BigDecimal oilConsumption;

    /** 实时速度的集合 */
    @Schema(description = "实时速度的集合")
    private String speedList;

    /** 平均车速KM/h */
    @Schema(description = "平均车速KM/h")
    private BigDecimal speedAvg;

    /** 最大车速KM/h */
    @Schema(description = "最大车速KM/h")
    private BigDecimal speedMax;

    /** 平均载重量 */
    @Schema(description = "平均载重量")
    private BigDecimal loadCapacityAvg;

    /** 最大载重量 */
    @Schema(description = "最大载重量")
    private BigDecimal loadCapacityMax;

    /** 报警类型(多个) */
    @Schema(description = "报警类型(多个)")
    private String alarmType;

    /** 报警时间(第一次) */
    @Schema(description = "报警时间(第一次)")
    private String alarmTime;

    /** 组织机构编号 */
    @Schema(description = "组织机构编号")
    private String sysOrgCode;

    /** 推送标识0未推送，1已推送 */
    @Schema(description = "推送标识0未推送，1已推送")
    private Integer pushFlag;

    /** 删除标识 */
//    @TableLogic
    private Integer delFlag;

    private String createTime;

    private String updateTime;

    /**
     * 任务编号
     */
    @Schema(description = "任务编号")
    private String calcdNo;

}
